
global
    log 127.0.0.1 local0 #[日志输出配置，所有日志都记录在本机，通过local0输出]
    log 127.0.0.1 local1 notice #定义haproxy 日志级别[error warringinfo debug]
    daemon #以后台形式运行harpoxy
    nbproc 1 #进程数量
    maxconn 4096 #最大连接数
    user haproxy #运行用户  
    group haproxy #运行组
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
########默认配置############
    defaults
    log global
    mode http            #默认模式{ tcp|http|health }，tcp是4层，http是7层，health只会返回OK
    option httplog       #日志类别,采用httplog
    option dontlognull   #不记录健康检查日志信息  
    retries 2            #2次连接失败不可用，也可以通过后面设置
    option forwardfor    #后端服务获得真实ip，如果后端服务器需要获得客户端真实ip需要配置的参数，可以从Http Header中获得客户端ip
    option httpclose     #请求完毕后主动关闭http通道，,haproxy不支持keep-alive,只能模拟这种模式的实现
    option abortonclose  #服务器负载很高，自动结束掉当前队列处理比较久的链接
    maxconn 4096         #最大连接数  
    timeout connect 5m   #连接超时  
    timeout client 1m    #客户端超时  
    timeout server 31m   #服务器超时  
    timeout check 10s    #心跳检测超时  
    #timeout http-keep-alive10s #默认持久连接超时时间
    #timeout http-request 10s #默认http请求超时时间
    #timeout queue 1m #默认队列超时时间
    balance  roundrobin  #balance roundrobin 负载轮询，balance source 保存session值，支持static-rr，leastconn，first，uri等参数
    #balance source #设置默认负载均衡方式，类似于nginx的ip_hash
    #balnace leastconn #设置默认负载均衡方式，最小连接数
########统计页面配置########
    listen stats  
    bind 0.0.0.0:1080 #设置Frontend和Backend的组合体，监控组的名称，按需要自定义名称
    mode http #http的7层模式
    option httplog #采用http日志格式
    log 127.0.0.1 local0 err #错误日志记录
    maxconn 10      #最大连接数  
    stats refresh 30s #统计页面自动刷新时间
    stats uri /admin         #状态页面 http//ip:1080/admin访问  
    stats realm Haproxy\ Statistics #统计页面密码框上提示文本
    stats auth {{ username }}:{{ password }}   #用户和密码:admin
    stats hide-version       #隐藏版本信息  
    stats admin if TRUE      #设置手工启动/禁用，后端服务器(haproxy-1.4.9以后版本)
########WEB############  
listen dashboard_cluster  
  bind {{ VIP }}:{{ haproxy_port }}
  {{ balance_mode }} 
  option httpclose
  option forwardfor
{% for host in groups['nginx'] %}
   server  {{ hostvars[host]['ansible_hostname'] }}  {{ hostvars[host]['ansible_default_ipv4']['address'] }}:{{ nginx_port }} check inter 2000 rise 2 fall 5
{% endfor %}
